package com.itany.shop.util;

import java.util.List;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年12月21日 15:14
 */
public class PageInfo<T> {
    private int total;//总的数据条数
    private int pages;//总页数
    private int pageNo;//当前页
    private int pageSize;//每页的数据条数
    private List<T> list;//当前页的数据

    /**
     * 根据分页关系，总数数据量   每页的数据条数  ->总页数
     * @param total
     * @param pageNo
     * @param pageSize
     * @param list
     */
    public PageInfo(int total, int pageNo, int pageSize, List<T> list) {
        this.total = total;
        this.pageNo = pageNo;
        this.pageSize = pageSize;
        this.list = list;

        //计算总页数
        pages=total%pageSize==0?total/pageSize:total/pageSize+1;

    }

    /**
     * 获取上一页，如果不是第一页，pageNo-1
     * 如果是第一页，没有上一页，默认使用第一页代替
     * @return 返回上一页的页码
     */
    public int getPrevPage(){
        return pageNo>1?pageNo-1:1;
    }

    /**
     * 获取下一页，如果不是最后一页，pageNo+1
     * 如果是最后一页，没有下一页，默认使用最后一页代替
     * @return 返回上一页的页码
     */
    public int getNextPage(){
        return pageNo<pages?pageNo+1:pages;
    }

    /**
     * 获取首页，第一页
     * @return
     */
    public int getHeadPage(){
        return 1;
    }

    /**
     * 获取最后一页
     * @return
     */
    public int getFootPage(){
        return pages;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getPageNo() {
        return pageNo;
    }

    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }
}
